iT邦幫忙

2023 iThome 鐵人賽

DAY 7
0
Security

學分的追逐,資安的啟程系列 第 7

Day 7 資安忍術之隱寫術 Steganography(三)

  • 分享至 

  • xImage
  •  

今天一樣來帶隱寫術!

Pixel 隱寫

Lab 圖片

點開會發現是一張這樣子的圖片

https://ithelp.ithome.com.tw/upload/images/20230922/20162775VAe6YdZGAM.png

看到這麼多的 Pixel 我們先一塊一塊地把那些 Pixel 的值讀出來

from PIL import Image

img = Image.open("flag.png")

W = img.width // 8
H = img.height // 8

for row in range(8):	# 8 rows
	for col in range(8):	# 8 columns
		r, g, b = img.getpixel((row * H+ 1, col * W + 1))
		print(r, g, b)

仔細觀察,會發現這張圖的RGB都在ASCII的範圍裏面

https://ithelp.ithome.com.tw/upload/images/20230922/20162775TRGjzLEBq2.png

把他們全部轉成字元後印出來

from PIL import Image

img = Image.open("flag.png")

pixels = []

W = img.width // 8
H = img.height // 8

for row in range(8):	# 8 rows
	for col in range(8):	# 8 columns
		r, g, b = img.getpixel((row * H+ 1, col * W + 1))
		pixels.append((chr(r), chr(g), chr(b)))

flag = ""

for r, g, b in pixels:
	flag += r + g + b

print(flag)

把解出來的字元用 Base64 解碼後就能得到FLAG

LSB 隱寫

什麼是 LSB (Least Significant Bit)

  • 最低有效位元
  • 二進位當中最右邊的 bit
  • EX : 00010110 1

LSB 隱寫

人的肉眼沒辦法區分出顏色的細微差別,所以透過修改最低有效位元的方式來隱藏資訊,並不讓人發覺

https://ithelp.ithome.com.tw/upload/images/20230922/201627750jpNCF7SIc.png

RGB 各減一,我們的肉眼也分不出差別

https://ithelp.ithome.com.tw/upload/images/20230922/20162775uMlckqTgxm.png

StegSovle

StegSovle 的 Data Extract 可以提取圖片的資訊

https://ithelp.ithome.com.tw/upload/images/20230922/20162775guXLqqyWvL.png

參考資料

https://ctf-wiki.org/misc/picture/introduction/
https://hackmd.io/@NIghTcAt/ByKr8jxGH


上一篇
Day 6 資安忍術之隱寫術 Steganography(二)
下一篇
Day 8 資安忍術之隱寫術 Steganography(四)
系列文
學分的追逐,資安的啟程30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言